OpenCV介绍
OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效,由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
OpenCV特点
OpenCV是开源的计算机视觉库,采用C / C++编写,处理速度很快。
OpenCV可以提供主流语言的接口,方便开发者调用。
OpenCV具有通用的图像/视频载,保存和获取模块,具有底层和高层的应用开发包。
OpenCV应用
OpenCV读取,显示与保存
1 | import cv2 as cv |
OpenCV图像格式转换
cvtColor方法
1 | import cv2 as cv |
OpenCV图像形态学变换
morphologyEx方法
1 | import cv2 as cv |
OpenCV图像形状变换
resize方法
1 | import cv2 as cv |
flip方法
1 | import cv2 as cv |
warpAffine方法
1 | import cv2 as cv |
OpenCV图像操作
bitwise方法
1 | import cv2 as cv |
add,subtract,multiply,divide,addweight方法
1 | import cv2 as cv |
blur,medianBlur,GaussianBlur,filter2D方法
1 | import cv2 as cv |
OpenCV统计
getTickCount,getTickFrequency方法
1 | import cv2 as cv |
mean,meanStdDev方法
1 | import cv2 as cv |
calcHist方法
1 | import cv2 as cv |
OpenCV常用图像操作
inRange方法
1 | import cv2 as cv |
HSV空间颜色分布表:
$$\begin{array}{|c|c|c|c|c|c|c|c|c|c|c|} 颜色 & 黑 & 灰 & 白 & 红 & 橙 & 黄 & 绿 & 青 & 蓝 & 紫 \\ \hline h_{min} & 0 & 0 & 0 & 0 & 11 & 26 & 35 & 78 & 100 & 125\\ h_{max} & 180 & 180 & 180 & 10 & 25 & 34 & 77 & 99 & 124 & 155\\ s_{min} & 0 & 0 & 0 & 43 & 43 & 43 & 43 & 43 & 43 & 43\\ s_{max} & 255 & 43 & 30 & 255 & 255 & 255 & 255 & 255 & 255 & 255\\ v_{min} & 0 & 46 & 221 & 46 & 46 & 46 & 46 & 46 & 46 & 46\\ v_{max} & 46 & 220 & 255 & 255 & 255 & 255 & 255 & 255 & 255 & 255\\ \end{array}$$
equalizeHist方法
1 | import cv2 as cv |
compareHist,calcBackProject,matchTemplate方法
1 | # cv.compareHist(hist1, hist2, method) 对两个直方图进行比较,method可以为cv.HISTCMP_BHATTACHARYYA,cv.HISTCMP_CORREL等等 |
line,rectangle,circle方法
1 | # cv.line(img, pt1, pt2, color, thickness) 在img图像上画一条直线,起点坐标为pt1,终点坐标为pt2,颜色为color,线宽为thickness |
threshold方法
1 | import cv2 as cv |
pyrDown,pyrUp方法
1 | import cv2 as cv |
OpenCV算子
Sobel,Laplacian,Canny方法
1 | import cv2 as cv |
OpenCV霍夫变换
HoughLines,HoughCircles方法
1 | # cv.HoughLines(img, rho, theta, threshold) 霍夫直线检测,边缘提取后的图像为img,步长为rho,角度步长为theta,阈值为threshold,返回所有直线信息 |
OpenCV轮廓处理
findContour,drawContour,contourArea方法
1 | # cv.findContour(img, mode, method) 寻找轮廓,mode表示轮廓的检索模式,可以为cv2.RETR_EXTERNAL,cv2.RETR_TREE等等,method表示轮廓的近似办法,可以为cv2.CHAIN_APPROX_NONE,cv2.CHAIN_APPROX_SIMPLE等等 |
OpenCV小结
通过OpenCV,使用者可以仅需要几行代码,便可以完成一系列图像处理任务,在这里介绍的只是小部分常见的功能,因此在图像处理的研究应用中,OpenCV是必不可少的帮手。